PARAMETROS_ATTRIBUTES=[
  {:codigo=>'PV00',
    :nombre=>"Salario Minimo.",
    :descripcion=>"Salario Minimo vigente.",
  },
  {:codigo=>'PV01',
    :nombre=>"Tolerancia llegadas tardias.",
    :descripcion=>"Cantidad maxima de minutos a tolerar en las marcaciones de entrada, utilizado para el descuento por llegadas tardias.",
  },
  {:codigo=>'PV02',
    :nombre=>"Horas Extras",
    :descripcion=>"Cantidad minima de minutos para considerar como horas extras.",
  },
  {:codigo=>'PTMOV01',
    :nombre=>"Tipo Movimiento: Horas extras trabajadas.",
    :descripcion=>"El id del tipo de movimiento a asignar a los movimientos generados liquidar las horas, como horas extras.",
    :parametrizable_type=>"TipoMovimiento",
  },
  {:codigo=>'PTMOV02',
    :nombre=>"Tipo Movimiento: Descuentos por horas trabajadas insuficientes.",
    :descripcion=>"El id del tipo de movimiento a asignar a los movimientos generados liquidar las horas, como descuentos (horas insuficientes, ausencias, etc).",
    :parametrizable_type=>"TipoMovimiento",
  },
  {:codigo=>'PTMOV03',
    :nombre=>"Tipo Movimiento: Adelanto de Aguinaldo.",
    :descripcion=>"El valor es el id del tipo de movimiento utilizado para los adelantos de aguinaldo.",
    :parametrizable_type=>"TipoMovimiento",
  },
  {:codigo=>'PPERF02',
    :nombre=>"Perfil: Atencion Mails de Solicitudes de documentos.",
    :descripcion=>"perfil al cual se le envian mails al crearse una nueva solicitud de documentos.",
    :parametrizable_type=>"Perfil",
  },
  {:codigo=>'PPERF01',
    :nombre=>"Perfil: Atención a los emails de Incidentes Criticos.",
    :descripcion=>"perfil al cual se le envian mails al crearse un nuevo incidente critico.",
    :parametrizable_type=>"Perfil",
  },    
]

def reload_parametros
  parametros_existentes=Parametro.find(:all,:select=>"codigo").map(&:codigo)
  PARAMETROS_ATTRIBUTES.each do |attrs|
    parametro=Parametro.find_or_create_by_codigo(attrs[:codigo])
    parametro.update_attributes(attrs)
    prefix=parametros_existentes.include?(attrs[:codigo]) ? '<< ACTUALIZADO >>' : '+++ NUEVO PARAMETRO CREADO +++'
    puts "#{prefix} Parametro: #{attrs[:nombre]}, (Cod:#{attrs[:codigo]})"
    
  end
end
namespace :parametros do
  desc "Elimina TODOS los parametros del sistema."
  task :clear_all => :environment do
    Parametro.destroy_all(true)
  end
  desc "Elimina del sistema los parametros que no poseean codigo."
  task :clear_no_codes => :environment do
    Parametro.destroy_all(:codigo=>nil)
  end
  desc "Carga los parametros al sistema."
  task :reload => :environment do
    reload_parametros
  end
end
